package com.zzsz.cf.translation.mapper;

import com.zzsz.cf.translation.entity.ProductCategory;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

// 不继承 BaseMapper，完全自定义方法
public interface ProductCategoryMapper {
    // 自定义查询所有分类（无扩展字段）
    List<ProductCategory> selectAllCategories();

    int insert(ProductCategory category);

    int updateCategory(@Param("categoryId") Integer categoryId, @Param("categoryName") String categoryName, @Param("description") String description);

    int updateCategoryStatus(@Param("categoryId") Integer categoryId, @Param("status") Integer status);

    int updateCategorySortOrder(@Param("categoryId") Integer categoryId, @Param("sortOrder") Integer sortOrder);

    int updateCategoryIcon(@Param("categoryId") Integer categoryId, @Param("icon") String icon);

    int countChildCategories(@Param("categoryId") Integer categoryId);

    int countProductsByCategory(@Param("categoryId") Integer categoryId);

    int deleteCategoryExtension(@Param("categoryId") Integer categoryId);

    int deleteCategory(@Param("categoryId") Integer categoryId);
    // 新增：查询直接子分类ID列表
    List<Integer> selectChildCategoryIds(@Param("categoryId") Integer categoryId);

    // 新增：批量查询分类下商品数量
    int countProductsByCategoryIds(@Param("categoryIds") List<Integer> categoryIds);

    // 新增：批量删除分类
    int deleteByIds(@Param("categoryIds") List<Integer> categoryIds);
    int batchInsert(@Param("categories") List<ProductCategory> categories);
    // 添加统计相关方法
    List<Map<String, Object>> selectParentCategoriesWithChildCount();
    List<Map<String, Object>> selectChildCategories(Integer parentId);


}